/*
題目內容:
题目3：求素数和，输入一个正整数，求其范围内的所有素的数和，有则输出，没有则输出0。每组数据单独1行输出

（**这个题目开始，题目中输出格式的要求变的至关重要了，将影响程序连续运行时输出的效果，要认真阅读每个题目题干要求**）。

Input
10
20
30
Output
17
77
129

*** 开始训练多组数据输入的测试，所谓多组数据输入，就是程序运行后可以连续不断的输入测试数据，对于每一组数据，程序计算完都会给出结果。
思路：
1.可以连续不断的输入数据，意味着程序可以不断自动的根据需要读入数据，显然可以利用循环结构去读入数据。
2．多组测试数据的输入，可以更有效的测试程序连续运行时是否存在bug。是检验程序的一种有效手段。
3．涉及到循环就要考虑循环的结束，否则造成循环无限不终止，如何构造循环终止。
4.输入函数的特征，scanf函数有返回值，其值代表正确输入数据的个数，当输入错误或者输入结束时会返回一个特殊值（EOF）。因此用这个值来判断输入是否结束。（这个值，可以利用键盘的ctrl+z来模拟构成）。

输入输出说明:
Input
10
20
30
Output
17
77
129

*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
   int x,i,sum,j,flag2,flag;
   while(scanf("%d",&x)!=EOF)
{
   sum=0;
   flag2=0;
   for(i=2;i<=x;i++)
   {
   	  j=1;
   	  flag=0;
      while(j<=i)
      {
    	if(i%j==0)
    	flag++;   //每个i的因子个数
    	j++;
	  }
	 if(flag==2)
	 {
	   sum+=i;     //素数和 
	   flag2++;   //素数个数 
     }
   }
   if(flag2==0||x==1)
   printf("0\n");
   else
   printf("%d\n",sum);
}
   return 0;      
}
